using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("DraftDisplay")]
	public class DraftDisplay : MonoBehaviour
	{
		public enum DraftMode
		{
			INVALID,
			NO_ACTIVE_DRAFT,
			DRAFTING,
			ACTIVE_DRAFT_DECK,
			IN_REWARDS
		}

		[Attribute38("DraftDisplay.ChoiceCallback")]
		public class ChoiceCallback : MonoClass
		{
			public FullDef fullDef => method_3<FullDef>("fullDef");

			public int choiceID => method_2<int>("choiceID");

			public int slot => method_2<int>("slot");

			public TAG_PREMIUM premium => method_2<TAG_PREMIUM>("premium");

			public ChoiceCallback(IntPtr address, string className)
				: base(address, className)
			{
			}

			public ChoiceCallback(IntPtr address)
				: this(address, "ChoiceCallback")
			{
			}
		}

		[Attribute38("DraftDisplay.DraftChoice")]
		public class DraftChoice : MonoClass
		{
			public string m_cardID => method_4("m_cardID");

			public TAG_PREMIUM m_premium => method_2<TAG_PREMIUM>("m_premium");

			public Actor m_actor => method_3<Actor>("m_actor");

			public Actor m_subActor => method_3<Actor>("m_subActor");

			public DraftChoice(IntPtr address, string className)
				: base(address, className)
			{
			}

			public DraftChoice(IntPtr address)
				: this(address, "DraftChoice")
			{
			}
		}

		public Collider m_pickArea => method_3<Collider>("m_pickArea");

		public UberText m_instructionText => method_3<UberText>("m_instructionText");

		public UberText m_instructionDetailText => method_3<UberText>("m_instructionDetailText");

		public UberText m_forgeLabel => method_3<UberText>("m_forgeLabel");

		public DraftManaCurve m_manaCurve => method_3<DraftManaCurve>("m_manaCurve");

		public GameObject m_heroLabel => method_3<GameObject>("m_heroLabel");

		public Spell m_DeckCompleteSpell => method_3<Spell>("m_DeckCompleteSpell");

		public float m_DeckCardBarFlareUpDelay => method_2<float>("m_DeckCardBarFlareUpDelay");

		public Spell m_heroPowerChosenFadeOut => method_3<Spell>("m_heroPowerChosenFadeOut");

		public Spell m_heroPowerChosenFadeIn => method_3<Spell>("m_heroPowerChosenFadeIn");

		public PegUIElement m_heroClickCatcher => method_3<PegUIElement>("m_heroClickCatcher");

		public DraftPhoneDeckTray m_draftDeckTray => method_3<DraftPhoneDeckTray>("m_draftDeckTray");

		public UIBButton m_backButton => method_3<UIBButton>("m_backButton");

		public StandardPegButtonNew m_retireButton => method_3<StandardPegButtonNew>("m_retireButton");

		public PlayButton m_playButton => method_3<PlayButton>("m_playButton");

		public Transform m_bigHeroBone => method_3<Transform>("m_bigHeroBone");

		public Transform m_socketHeroBone => method_3<Transform>("m_socketHeroBone");

		public List<Transform> m_heroPowerBones => method_3<Class271<Transform>>("m_heroPowerBones")?.method_25();

		public Transform m_socketHeroPowerBone => method_3<Transform>("m_socketHeroPowerBone");

		public GameObject m_PhonePlayButtonTray => method_3<GameObject>("m_PhonePlayButtonTray");

		public Transform m_PhoneBackButtonBone => method_3<Transform>("m_PhoneBackButtonBone");

		public Transform m_PhoneDeckTrayHiddenBone => method_3<Transform>("m_PhoneDeckTrayHiddenBone");

		public GameObject m_Phone3WayButtonRoot => method_3<GameObject>("m_Phone3WayButtonRoot");

		public GameObject m_PhoneChooseHero => method_3<GameObject>("m_PhoneChooseHero");

		public GameObject m_PhoneLargeViewDeckButton => method_3<GameObject>("m_PhoneLargeViewDeckButton");

		public ArenaPhoneControl m_PhoneDeckControl => method_3<ArenaPhoneControl>("m_PhoneDeckControl");

		public static Vector3 CHOICE_ACTOR_LOCAL_SCALE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "CHOICE_ACTOR_LOCAL_SCALE");

		public static Vector3 HERO_ACTOR_LOCAL_SCALE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_ACTOR_LOCAL_SCALE");

		public static Vector3 HERO_LABEL_SCALE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_LABEL_SCALE");

		public static Vector3 HERO_POWER_START_POSITION => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_POWER_START_POSITION");

		public static Vector3 HERO_POWER_POSITION => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_POWER_POSITION");

		public static Vector3 HERO_POWER_SCALE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_POWER_SCALE");

		public static Vector3 DRAFTING_HERO_POWER_POSITION => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "DRAFTING_HERO_POWER_POSITION");

		public static Vector3 DRAFTING_HERO_POWER_BIG_CARD_SCALE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "DRAFTING_HERO_POWER_BIG_CARD_SCALE");

		public static Vector3 DRAFTING_HERO_POWER_SCALE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "DRAFTING_HERO_POWER_SCALE");

		public static Vector3 HERO_POWER_TOOLTIP_POSITION => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_POWER_TOOLTIP_POSITION");

		public static Vector3 HERO_POWER_TOOLTIP_SCALE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_POWER_TOOLTIP_SCALE");

		public static Vector3 CHOICE_ACTOR_LOCAL_SCALE_PHONE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "CHOICE_ACTOR_LOCAL_SCALE_PHONE");

		public static Vector3 HERO_ACTOR_LOCAL_SCALE_PHONE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_ACTOR_LOCAL_SCALE_PHONE");

		public static Vector3 HERO_LABEL_SCALE_PHONE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_LABEL_SCALE_PHONE");

		public static Vector3 HERO_POWER_START_POSITION_PHONE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_POWER_START_POSITION_PHONE");

		public static Vector3 HERO_POWER_POSITION_PHONE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_POWER_POSITION_PHONE");

		public static Vector3 HERO_POWER_SCALE_PHONE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_POWER_SCALE_PHONE");

		public static Vector3 DRAFTING_HERO_POWER_SCALE_PHONE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "DRAFTING_HERO_POWER_SCALE_PHONE");

		public static Vector3 HERO_POWER_TOOLTIP_POSITION_PHONE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_POWER_TOOLTIP_POSITION_PHONE");

		public static Vector3 HERO_POWER_TOOLTIP_SCALE_PHONE => MonoClass.smethod_6<Vector3>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "HERO_POWER_TOOLTIP_SCALE_PHONE");

		public DraftManager m_draftManager => method_3<DraftManager>("m_draftManager");

		public List<DraftChoice> m_choices => method_3<Class271<DraftChoice>>("m_choices")?.method_25();

		public List<Actor> m_heroPowerCardActors => method_3<Class251<Actor>>("m_heroPowerCardActors")?.method_25();

		public List<FullDef> m_heroPowerDefs => method_3<Class251<FullDef>>("m_heroPowerDefs")?.method_25();

		public List<FullDef> m_subClassHeroPowerDefs => method_3<Class251<FullDef>>("m_subClassHeroPowerDefs")?.method_25();

		public DraftMode m_currentMode => method_2<DraftMode>("m_currentMode");

		public NormalButton m_confirmButton => method_3<NormalButton>("m_confirmButton");

		public Actor m_heroPower => method_3<Actor>("m_heroPower");

		public bool m_netCacheReady => method_2<bool>("m_netCacheReady");

		public bool m_questsHandled => method_2<bool>("m_questsHandled");

		public Actor m_chosenHero => method_3<Actor>("m_chosenHero");

		public Actor m_inPlayHeroPowerActor => method_3<Actor>("m_inPlayHeroPowerActor");

		public bool m_animationsComplete => method_2<bool>("m_animationsComplete");

		public List<HeroLabel> m_currentLabels => method_3<Class271<HeroLabel>>("m_currentLabels")?.method_25();

		public List<CardSoundSpell> m_heroEmotes => method_3<Class251<CardSoundSpell>>("m_heroEmotes")?.method_25();

		public bool m_skipHeroEmotes => method_2<bool>("m_skipHeroEmotes");

		public bool m_isHeroAnimating => method_2<bool>("m_isHeroAnimating");

		public DraftCardVisual m_zoomedHero => method_3<DraftCardVisual>("m_zoomedHero");

		public bool m_wasDrafting => method_2<bool>("m_wasDrafting");

		public List<Achievement> m_newlyCompletedAchieves => method_3<Class271<Achievement>>("m_newlyCompletedAchieves")?.method_25();

		public bool m_firstTimeIntroComplete => method_2<bool>("m_firstTimeIntroComplete");

		public bool m_inPositionAndShowChoices => method_2<bool>("m_inPositionAndShowChoices");

		public List<Actor> m_subclassHeroClones => method_3<Class271<Actor>>("m_subclassHeroClones")?.method_25();

		public List<Actor> m_subclassHeroPowerActors => method_3<Class251<Actor>>("m_subclassHeroPowerActors")?.method_25();

		public DraftDisplay(IntPtr address, string className)
			: base(address, className)
		{
		}

		public DraftDisplay(IntPtr address)
			: this(address, "DraftDisplay")
		{
		}

		public static DraftDisplay Get()
		{
			return MonoClass.smethod_15<DraftDisplay>(TritonHs.MainAssemblyPath, "", "DraftDisplay", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void Start()
		{
			method_8("Start");
		}

		public void Update()
		{
			method_8("Update");
		}

		public void OnOpenRewardsComplete()
		{
			method_8("OnOpenRewardsComplete");
		}

		public void OnApplicationPause(bool pauseStatus)
		{
			method_8("OnApplicationPause", pauseStatus);
		}

		public void Unload()
		{
			method_8("Unload");
		}

		public void SetDraftMode(DraftMode mode)
		{
			method_8("SetDraftMode", mode);
		}

		public DraftMode GetDraftMode()
		{
			return method_11<DraftMode>("GetDraftMode", Array.Empty<object>());
		}

		public void CancelFindGame()
		{
			method_8("CancelFindGame");
		}

		public void ZoomHeroCard(Actor hero, bool isDraftingHeroPower)
		{
			method_8("ZoomHeroCard", hero, isDraftingHeroPower);
		}

		public void OnHeroClicked(int heroChoice)
		{
			method_8("OnHeroClicked", heroChoice);
		}

		public bool IsHeroEmoteSpellReady(int index)
		{
			return method_11<bool>("IsHeroEmoteSpellReady", new object[1] { index });
		}

		public void ClickConfirmButton()
		{
			method_8("ClickConfirmButton");
		}

		public void OnConfirmButtonClicked(UIEvent e)
		{
			method_8("OnConfirmButtonClicked", e);
		}

		public void OnCancelButtonClicked(UIEvent e)
		{
			method_8("OnCancelButtonClicked", e);
		}

		public void RemoveListeners()
		{
			method_8("RemoveListeners");
		}

		public void FadeEffectsIn()
		{
			method_8("FadeEffectsIn");
		}

		public void FadeEffectsOut()
		{
			method_8("FadeEffectsOut");
		}

		public void OnFadeFinished()
		{
			method_8("OnFadeFinished");
		}

		public void DoHeroCancelAnimation()
		{
			method_8("DoHeroCancelAnimation");
		}

		public bool IsInHeroSelectMode()
		{
			return method_11<bool>("IsInHeroSelectMode", Array.Empty<object>());
		}

		public void DoHeroSelectAnimation()
		{
			method_8("DoHeroSelectAnimation");
		}

		public void PhoneHeroAnimationFinished()
		{
			method_8("PhoneHeroAnimationFinished");
		}

		public void PhoneHeroPowerAnimationFinished()
		{
			method_8("PhoneHeroPowerAnimationFinished");
		}

		public void AddCardToManaCurve(EntityDef entityDef)
		{
			method_8("AddCardToManaCurve", entityDef);
		}

		public List<DraftCardVisual> GetCardVisuals()
		{
			return method_14<Class271<DraftCardVisual>>("GetCardVisuals", Array.Empty<object>())?.method_25();
		}

		public void HandleGameStartupFailure()
		{
			method_8("HandleGameStartupFailure");
		}

		public void DoDeckCompleteAnims()
		{
			method_8("DoDeckCompleteAnims");
		}

		public void ShowNewQuests()
		{
			method_8("ShowNewQuests");
		}

		public void OnNewQuestsShown()
		{
			method_8("OnNewQuestsShown");
		}

		public void ShowNextCompletedQuestToast(object userData)
		{
			method_8("ShowNextCompletedQuestToast", userData);
		}

		public void OnConfirmButtonLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnConfirmButtonLoaded", assetRef, go, callbackData);
		}

		public void OnPhoneBackButtonLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnPhoneBackButtonLoaded", assetRef, go, callbackData);
		}

		public void OnHeroPowerActorLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_9("OnHeroPowerActorLoaded", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.Class,
				Class276.Enum20.Class
			}, assetRef, go, callbackData);
		}

		public void LoadHeroPowerCallback(Actor actor)
		{
			method_9("LoadHeroPowerCallback", new Class276.Enum20[1] { Class276.Enum20.Class }, actor);
		}

		public void LoadHeroPowerCallback(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_9("LoadHeroPowerCallback", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.Class,
				Class276.Enum20.Class
			}, assetRef, go, callbackData);
		}

		public void ShowHeroPowerBigCard(bool isDraftingHeroPower)
		{
			method_8("ShowHeroPowerBigCard", isDraftingHeroPower);
		}

		public void ShowHeroPower(Actor actor)
		{
			method_8("ShowHeroPower", actor);
		}

		public void DestroyOldChoices()
		{
			method_8("DestroyOldChoices");
		}

		public void SetupToDisplayHeroPowerTooltip(Actor actor)
		{
			method_8("SetupToDisplayHeroPowerTooltip", actor);
		}

		public void CleanupChoicesOnSpellFinish_HeroPower(Spell spell, object actorObject)
		{
			method_8("CleanupChoicesOnSpellFinish_HeroPower", spell, actorObject);
		}

		public void DestroyChoiceOnSpellFinish(Spell spell, object actorObject)
		{
			method_8("DestroyChoiceOnSpellFinish", spell, actorObject);
		}

		public void OnFullDefLoaded(string cardID, FullDef def, object userData)
		{
			method_8("OnFullDefLoaded", cardID, def, userData);
		}

		public void OnHeroPowerFullDefLoaded(string cardID, FullDef def, object userData)
		{
			method_8("OnHeroPowerFullDefLoaded", cardID, def, userData);
		}

		public void ShowInnkeeperInstructions()
		{
			method_8("ShowInnkeeperInstructions");
		}

		public void SetInstructionText()
		{
			method_8("SetInstructionText");
		}

		public void UpdateInstructionText()
		{
			method_8("UpdateInstructionText");
		}

		public void DoFirstTimeIntro()
		{
			method_8("DoFirstTimeIntro");
		}

		public void OnFirstTimeIntroOkButtonPressed(AlertPopup.Response response, object userData)
		{
			method_8("OnFirstTimeIntroOkButtonPressed", response, userData);
		}

		public void ShowFreeArenaWinScreen()
		{
			method_8("ShowFreeArenaWinScreen");
		}

		public void ShowOutstandingTicketScreen(int numTicketsOwned)
		{
			method_8("ShowOutstandingTicketScreen", numTicketsOwned);
		}

		public void ShowPurchaseScreen()
		{
			method_8("ShowPurchaseScreen");
		}

		public void ShowCurrentlyDraftingScreen()
		{
			method_8("ShowCurrentlyDraftingScreen");
		}

		public void ShowDraftRewardsScreen()
		{
			method_8("ShowDraftRewardsScreen");
		}

		public void LastArenaWinsLabelLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("LastArenaWinsLabelLoaded", assetRef, go, callbackData);
		}

		public void LoadAndPositionHeroCard()
		{
			method_8("LoadAndPositionHeroCard");
		}

		public void OnNetCacheReady()
		{
			method_8("OnNetCacheReady");
		}

		public void PositionAndShowChoices()
		{
			method_8("PositionAndShowChoices");
		}

		public bool CanAutoDraft()
		{
			return method_11<bool>("CanAutoDraft", Array.Empty<object>());
		}

		public Vector3 GetCardPosition(int cardChoice, bool isHeroSkin)
		{
			return method_11<Vector3>("GetCardPosition", new object[2] { cardChoice, isHeroSkin });
		}

		public SpellType GetSpellTypeForRarity(TAG_RARITY rarity)
		{
			return method_11<SpellType>("GetSpellTypeForRarity", new object[1] { rarity });
		}

		public void OnHeroActorLoaded(Actor actor)
		{
			method_8("OnHeroActorLoaded", actor);
		}

		public void OnHeroPowerActorLoaded(Actor actor)
		{
			method_9("OnHeroPowerActorLoaded", new Class276.Enum20[1] { Class276.Enum20.Class }, actor);
		}

		public void OnMouseOverHeroPower(UIEvent uiEvent)
		{
			method_8("OnMouseOverHeroPower", uiEvent);
		}

		public void OnMouseOutHeroPower(UIEvent uiEvent)
		{
			method_8("OnMouseOutHeroPower", uiEvent);
		}

		public void OnActorLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnActorLoaded", assetRef, go, callbackData);
		}

		public void OnSubClassActorLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnSubClassActorLoaded", assetRef, go, callbackData);
		}

		public void OnCardDefLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnCardDefLoaded", assetRef, go, callbackData);
		}

		public void OnStartEmoteLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnStartEmoteLoaded", assetRef, go, callbackData);
		}

		public bool HaveActorsForAllChoices()
		{
			return method_11<bool>("HaveActorsForAllChoices", Array.Empty<object>());
		}

		public bool HaveAllSubclassHeroPowerDefs()
		{
			return method_11<bool>("HaveAllSubclassHeroPowerDefs", Array.Empty<object>());
		}

		public void InitManaCurve()
		{
			method_8("InitManaCurve");
		}

		public void OnStoreBackButtonPressed(bool authorizationBackButtonPressed, object userData)
		{
			method_8("OnStoreBackButtonPressed", authorizationBackButtonPressed, userData);
		}

		public bool OnNavigateBack()
		{
			return method_11<bool>("OnNavigateBack", Array.Empty<object>());
		}

		public void BackButtonPress(UIEvent e)
		{
			method_8("BackButtonPress", e);
		}

		public void ExitDraftScene()
		{
			method_8("ExitDraftScene");
		}

		public void PlayButtonPress(UIEvent e)
		{
			method_8("PlayButtonPress", e);
		}

		public void RetireButtonPress(UIEvent e)
		{
			method_8("RetireButtonPress", e);
		}

		public void OnFreeArenaWinOkButtonPress(DialogBase dialog, object userData)
		{
			method_8("OnFreeArenaWinOkButtonPress", dialog, userData);
		}

		public void OnOutstandingTicketOkButtonPress(DialogBase dialog, object userData)
		{
			method_8("OnOutstandingTicketOkButtonPress", dialog, userData);
		}

		public void OnRetirePopupResponse(AlertPopup.Response response, object userData)
		{
			method_8("OnRetirePopupResponse", response, userData);
		}

		public void ManaCurveOver(UIEvent e)
		{
			method_8("ManaCurveOver", e);
		}

		public void ManaCurveOut(UIEvent e)
		{
			method_8("ManaCurveOut", e);
		}

		public void DeckHeaderOver(UIEvent e)
		{
			method_8("DeckHeaderOver", e);
		}

		public void DeckHeaderOut(UIEvent e)
		{
			method_8("DeckHeaderOut", e);
		}

		public void SetupBackButton()
		{
			method_8("SetupBackButton");
		}

		public void EnableBackButton(bool buttonEnabled)
		{
			method_8("EnableBackButton", buttonEnabled);
		}

		public void SetupRetireButton()
		{
			method_8("SetupRetireButton");
		}

		public void ShowPhonePlayButton(bool show)
		{
			method_8("ShowPhonePlayButton", show);
		}

		public void OnScenePreUnload(SceneMgr.Mode prevMode, PegasusScene prevScene, object userData)
		{
			method_8("OnScenePreUnload", prevMode, prevScene, userData);
		}
	}
}
